#include "mcu_timer.h"
#include "mcu.h"



#define TIM2_TICK_COUNT			(TIM2_CYCLE*1000l*F_MASTER)	//定时器周期需要的Fmaster时钟周期数
#define TIM2_ARR_VALUE			(TIM2_TICK_COUNT/1024)

void Tim2_Init()
{
	TIM2_PSCR=10;	//2^10=1024
	TIM2_ARRH=(u8)(TIM2_ARR_VALUE/256);
	TIM2_ARRL=(u8)(TIM2_ARR_VALUE%256);
	TIM2_EGR = 0X01;		//产生更新事件，装载新的分频参数
	//TIM2_CR1=0X01;			//TIM2开始计数
	while((TIM2_SR1&0X01)==0);//等待产生更新事件，装载新的分频参数
	//TIM2_CR1=0;				//TIM2停止计数
	TIM2_SR1=0;      		//清除事件标志
	TIM2_IER  =0x01;		//允许更新中断
	TIM2_CR1=0X01;			//TIM2开始计数
}




void Tim4_Init()
{
	TIM4_PSCR =TIM4_PSCR_VALUE;//计数频率f=F_MASTER/2^7
	TIM4_ARR  =TIM4_ARR_VALUE;   
	
	TIM4_EGR  =0X01;		//产生更新事件，装载新的分频参数
//    TIM4_CR1  =0x01;		//TIM4开始计数
	while((TIM4_SR&0X01)==0);//等待产生更新事件，装载新的分频参数
//    TIM4_CR1  =0;			//TIM4停止计数
	
	TIM4_SR=0;      		//清除事件标志
	TIM4_IER  =0x01;		//允许更新中断
	ITC_SPR6_VECT23SPR=1;	//设置TIM4中断等级为1(仅高于MAIN)，不可以打断其他中断

	TIM4_CR1=0X01;
}


